Libraries
R es un software libre, por tanto es totalmente gratuito y abierto. Tiene una comunidad a nivel mundial muy activa, donde se comparte todo tipo de contenido relacionado con el análisis de datos.
Es un lenguaje de programación, de modo que también es posible que los usuarios elaboren sus propias funciones o “paquetes”.
Tiene una fuerte orientación al análisis estadístico y visualización de datos.
Una de sus principales características es que posee una lógica de programación orientada a Objetos (Object Oriented programming). Lo veremos en detalle más adelante.
El editor nativo de R es poco amigable para los usuarios. Por lo tanto, lo más adecuado es emplear una Interfaz de Usuario (IDE por Integrated development environment)
R es una gran calculadoraUna de las características principales de R es que nos permite emplearlo como una “base” para realizar cálculos matemáticos simples, como también emplear funciones complejas a través de paquetes especializados.
Al ser una plataforma abierta, es posible utilizar una infinidad de paquetes que otros usuarios han desarrollado. Los paquetes son grupos de funciones que usuarios han programado con algún objetivo, el cual queda abierto a la comunidad para su libre acceso.
Aquí hay algunos ejemplos:
1+1
## [1] 2
(100+100)/4
## [1] 50
<- permite indicarle a R que queremos “guardar” un objetoa <- 100 #Guardamos 100 dentro del objeto a
b <- 4 #Guardamos 4 dentro del objeto b
c <- 1+1 #Guardamos el resultado de 1+1 en c
print(a)
## [1] 100
print(a*b) #multiplicando a x b
## [1] 400
d <- (a*a)/b #a x a dividido b
print(d)
## [1] 2500
#O su versión abreviada:
d
## [1] 2500
d^2 #Estamos elevando al cuadrado al objeto e
## [1] 6250000
install.packages("haven") #cargar .sav (SPSS)
library(haven) #Cargar la librería
Cargar una base de datos en .csv
tt <- read_sav(url("https://jciturras.github.io/ayudantia-sol3051/slides/00-intro-r/data/titanic2.sav"))
tt <- read.csv(url("https://jciturras.github.io/ayudantia-sol3051/slides/00-intro-r/data/titanic.csv"))
#Tipos de estructura de datos:
Todos estos pueden ser tratados como objetos.
summary(tt$age) #Estadísticos descriptivos
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1667 21.0000 28.0000 29.8811 39.0000 80.0000
mean(tt$age) #Media de edad
## [1] 29.88113
sd(tt$age) #desviación estándar de edad
## [1] 14.4135
summary.factor(tt$sex) # ¿cuántos hombres y mujeres hay?
## Hombre Mujer
## 658 388
summary.factor(tt$pclass) #Con summary también podemos ver un factor
## Clase Alta Clase Baja Clase Intermedia
## 284 501 261
table(tt$pclass) #Otra alternativa
##
## Clase Alta Clase Baja Clase Intermedia
## 284 501 261
prop.table(table(tt$pclass)) #Vemos las proporciones
##
## Clase Alta Clase Baja Clase Intermedia
## 0.2715105 0.4789675 0.2495220
table(tt$pclass, tt$sex) #tabla cruzada sexo y clase social
##
## Hombre Mujer
## Clase Alta 151 133
## Clase Baja 349 152
## Clase Intermedia 158 103
| Nombre | Descripción | Valores | Categorías |
|---|---|---|---|
| pclass | Clase del pasajero/a | 1 | Clase Alta |
| 2 | Clase Intermedia | ||
| 3 | Clase Baja | ||
| survived | Estatus sobrevivencia | 1 | No sobrevive |
| 2 | Sobrevive | ||
| name | Nombre | ||
| sex | Sexo pasajero/a | 1 | Hombre |
| 2 | Mujer | ||
| age | Edad pasajero/a | rango: 0.2-80.0 | |
| sibsp | Número de parientes | rango: 0-8 | |
| parch | Número de padres / niños a bordo | rango: 0-9 |